草庐IT

c++ - 包装第 3 方 DLL

全部标签

c++ - UTF-8 到宽字符转换

#ifndefUNICODE#defineUNICODE#endif#include#include#includeusingnamespacestd;intmain(){FILE*resFile;charmultiByteStr[256];ifstreamoFile;FILE*exampleFile;TCHARbuffer[256];system("chcp65001");resFile=_wfopen(L"foo",L"w,ccs=UTF-8");fwprintf(resFile,L"%s",L"C:\\exsistingFolder\\zażółćgęśłąjaźń☺☻♥♦•ć.

c - 我将哪个地址系列用于 src IPv4 和 dest IPv6?

我正在尝试创建一个套接字以允许IPv4到IPv4、IPv4到IPv6、IPv6到IPv4和IPv6到IPv6地址连接。1.)协议(protocol)组合(例如IPv4到IPv6、IPv6到IPv4)是否允许?2.)如果是这样,我是否使用源地址或目标地址系列来创建套接字?目前我正在使用源地址,并且在使用IPv6源地址和IPv4目标地址时收到套接字错误10014WSAEFAULT。相关部分代码:if(!strchr(srcAddr,'['))sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);elsesock=socket(AF_INET6,SOCK_

c++ - DLL注册返回码0x80029c4a

我是COM编程的新手,我有一个可以编译的DLL,但在我尝试运行它时不会注册。我在这里遵循了本教程http://msdn.microsoft.com/en-US/library/2wad1c0e(v=vs.80)并对其进行修改以生成以下代码。我不太确定我在这里做错了什么。#pragmaonce#defineSTRICT#ifndef_WIN32_WINNT#define_WIN32_WINNT0x0400#endif#define_ATL_ATTRIBUTES#define_ATL_APARTMENT_THREADED#define_ATL_NO_AUTOMATIC_NAMESPACE#

windows - VB6 程序使用的 32 位 dll 在 64 位 Win 7 中不起作用

1)C:\Windows\SysWOW64中放置了一个32位的dll2)使用regasm.exe注册3)编译时,我将objective-cpu设置为x86我可以在我的vb6程序中添加引用,但是当我尝试调用dll中的方法时,它失败了。报错如下:"RuntimeError'-2147467261'objectinstancenotsettoaninstanceofanobject"这里的代码:Setm_objCLogon=CreateObject("CommonLogon.Logon")strResult=m_objCLogon.ValidateLogin(p_strUserID,p_st

c - 如何判断我的 Windows 应用程序何时终止?

当我的Windows程序(C/C++)被Taskmgr.exe杀死时,有什么方法可以收到通知吗?它似乎没有收到任何特殊的Windows消息-它只是终止。我不想阻止它终止,我只想写一个它被手动终止的某种通知。谢谢。 最佳答案 如果它是一个完整的Windows应用程序,您应该在应用程序退出之前在您的消息泵中获取WM_QUIT。如MSDN所述:http://msdn.microsoft.com/en-us/library/windows/desktop/ms632641(v=vs.85).aspx这不会发布到窗口的消息队列中,您只能在主消

c - 一个程序改变另一个程序的数据

我可以编写并运行一个创建整数的程序吗?我可以编写另一个程序来修改这个整数吗? 最佳答案 是的,但你将不得不涉及某种inter-processcommunication.在大多数现代操作系统上,内存是虚拟的,不能直接共享原始指针。 关于c-一个程序改变另一个程序的数据,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/12038350/

c++ - Win32 : Passing lParam to CreateWindow and keeping track of open windows

首先,这是我收到的文档中的描述。注意:我所要做的就是更改现有代码以满足这些要求更改代码以创建4个组织的窗口,如演示中所示。当用户关闭一个窗口时,如果还有其他窗口仍然打开它不会终止程序。用户必须关闭所有这些才能停止程序,您需要跟踪打开的窗口数(并减去当它们关闭时)。不允许使用全局变量。不允许静态。此外,您的程序必须使用lParam和CREATESTRUCT初始化计数。Possiblefunctionsandstructs:SetWindowLong()GetWindowLong()SetClassLong()GetClassLong()CREATESTRUCT现在好了,这就是我的结尾。我

c# - 如何在 Windows 中的那个时刻查找特定进程的 cpu 使用率

是否有可能在Windows中以编程方式(以任何语言)了解正在运行/空闲进程的CPU使用情况? 最佳答案 如果您不关心支持旧的Windows版本(早于WindowsXPSP1),您可以使用GetSystemTimesWin32APIfunction.否则你必须使用PerformanceCounters. 关于c#-如何在Windows中的那个时刻查找特定进程的cpu使用率,我们在StackOverflow上找到一个类似的问题: https://stackover

c - 如何枚举内核中指定进程的所有打开句柄(Windows)

我有一个内核驱动程序。我如何枚举我的内核驱动程序中指定进程的所有打开句柄?我想关闭这些句柄。谢谢! 最佳答案 Iwanttoclosethesehandles.就其值(value)而言,仅仅因为可以做某事,并不意味着应该做。这是个坏主意。也就是说,可以使用对Zw/NtQuerySystemInformation的未记录调用来枚举所有进程的所有句柄。具有信息类SystemHandleInformation。使用这些术语进行网络搜索会得到您想要的结果。 关于c-如何枚举内核中指定进程的所有打

c++ - ProcessExit - DLL 卸载和静态的顺序

有一个EXE,它隐式加载一些DLL和其他显式加载(LoadLibrary)。此EXE正在执行其ExitProcess(剩余进程中的1个线程)并作为忙于卸载DLL的一部分,例如A.DLL。A.DLL(不幸的是)有一个静态的。atexit回调被调用,这个静态的析构函数开始被调用,留下析构函数的踪迹,直到析构函数决定做一些清理并加载一个DLL来做这个。此DLL执行一些方法,直到由于内存访问冲突而发生崩溃,因为它要在此DLL中使用的静态不再存在。查看此静态的堆栈跟踪,其析构函数已作为其DLL卸载的一部分被调用。发生了什么事?DLL已加载,执行了一些方法,开始使用静态(在同一个DLL中)但它已被